Regular Expression (Regex) একটি শক্তিশালী প্যাটার্ন-ম্যাচিং টুল, যা টেক্সটের মধ্যে প্যাটার্ন খুঁজে বের করতে ব্যবহৃত হয়। এটি একটি নির্দিষ্ট ধরনের স্ট্রিং প্যাটার্নের সাথে মেলে এমন টেক্সটের অংশগুলো শনাক্ত করার জন্য ব্যবহার করা হয়। Java তে, Regex ব্যবহৃত হয় বিভিন্ন টেক্সট প্রসেসিং কাজের জন্য, যেমন টেক্সট অনুসন্ধান, প্রতিস্থাপন, বিভাজন, অথবা যাচাই করা।
Java তে Regex ব্যবহারের জন্য java.util.regex
প্যাকেজটি রয়েছে। এই প্যাকেজে দুটি মূল ক্লাস রয়েছে:
Pattern
ক্লাসের প্যাটার্নের সাথে ইনপুট স্ট্রিং ম্যাচ করে।.
(dot): যেকোনো একটি ক্যারেক্টার মেলবে (নতুন লাইন ছাড়া)।a.b
→ "acb", "axb", "a1b" ইত্যাদি।^
(caret): স্ট্রিংয়ের শুরুতে ম্যাচ করবে।^abc
→ "abcdef", "abc123" (কেবল স্ট্রিং যেটি "abc" দিয়ে শুরু হয়)।$
(dollar): স্ট্রিংয়ের শেষে ম্যাচ করবে।abc$
→ "123abc", "helloabc" (কেবল স্ট্রিং যেটি "abc" দিয়ে শেষ হয়)।[]
(character class): একটি নির্দিষ্ট চরিত্রের মধ্যে যে কোনো একটি ম্যাচ করবে।[abc]
→ "a", "b", "c"।|
(pipe): "OR" অপারেটর, দুটি প্যাটার্নের মধ্যে যেকোনো একটি মেলবে।a|b
→ "a" অথবা "b"।*
(asterisk): আগের ক্যারেক্টারটি ০ বা ততোধিক বার পুনরাবৃত্তি হতে পারে।a*b
→ "b", "ab", "aaab" ইত্যাদি।+
(plus): আগের ক্যারেক্টারটি ১ বা ততোধিক বার পুনরাবৃত্তি হতে হবে।a+b
→ "ab", "aaab" (কিন্তু শুধুমাত্র "b" নয়)।?
(question mark): আগের ক্যারেক্টারটি ০ বা ১ বার পুনরাবৃত্তি হতে পারে।a?b
→ "b", "ab"।\d
: ডিজিট (0-9) ম্যাচ করবে।\D
: অ-ডিজিট (0-9 ছাড়া) ম্যাচ করবে।\w
: একটি শব্দের অংশ (letter, digit, underscore) ম্যাচ করবে।\W
: অ-শব্দ চরিত্র (letter, digit, underscore ছাড়া) ম্যাচ করবে।\s
: সাদা জায়গা (space, tab, newline) ম্যাচ করবে।\S
: সাদা জায়গা ছাড়া অন্য কিছু ম্যাচ করবে।\b
: শব্দের সীমানা (word boundary)।\B
: শব্দের সীমানা ছাড়া অন্য কিছু।{n}
: ঠিক n
বার পুনরাবৃত্তি।a{3}
→ "aaa" (যেকোনো স্ট্রিং যাতে "aaa" আছে)।{n,}
: ন্যূনতম n
বার পুনরাবৃত্তি।a{2,}
→ "aa", "aaa", "aaaa" ইত্যাদি।{n,m}
: ন্যূনতম n
বার এবং সর্বোচ্চ m
বার পুনরাবৃত্তি।a{2,4}
→ "aa", "aaa", "aaaa"।(ab)+
→ "ab", "abab", "ababab" ইত্যাদি।(?:...)
: নন-ক্যাপচার গ্রুপ, যেটি গ্রুপিং করলেও ফলস্বরূপে ক্যাপচার হবে না।Java তে Regular Expressions ব্যবহার করার জন্য প্রধানত দুটি ক্লাস ব্যবহার করা হয়:
import java.util.regex.*;
public class RegexExample {
public static void main(String[] args) {
// Regular expression for a valid email
String emailRegex = "^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$";
// Compile the regular expression
Pattern pattern = Pattern.compile(emailRegex);
// Input string to match
String email = "test@example.com";
// Create a matcher object
Matcher matcher = pattern.matcher(email);
// Check if the email matches the pattern
if (matcher.matches()) {
System.out.println("Valid email address.");
} else {
System.out.println("Invalid email address.");
}
}
}
Pattern.compile()
মেথডের মাধ্যমে Regex কম্পাইল করা হয়েছে।matcher.matches()
মেথডটি ইনপুট স্ট্রিংয়ের সাথে প্যাটার্নের মিল চেক করে।Java তে Regex একটি শক্তিশালী এবং নমনীয় টুল যা স্ট্রিংয়ের মধ্যে নির্দিষ্ট প্যাটার্ন খুঁজে বের করতে, স্ট্রিং যাচাই করতে এবং টেক্সট ম্যানিপুলেশন করতে ব্যবহৃত হয়। এটি টেক্সট প্রসেসিং এবং ডাটা ভ্যালিডেশন প্রক্রিয়াগুলিতে খুবই উপকারী। java.util.regex
প্যাকেজের Pattern
এবং Matcher
ক্লাস ব্যবহার করে Java তে সহজেই Regex প্যাটার্নগুলো কার্যকরীভাবে প্রয়োগ করা যায়।
Read more